﻿using System;
using System.Collections.Generic;
using System.Linq;
using Crosland.Automotriz.Entidad;
using System.Data.SqlClient;

namespace Crosland.Automotriz.Data.Dao.Linq
{
    public class clsTH_Venta_Externa_Stock_ModeloDAO
    {
        private readonly DM_CROSLAND_20130417Entities ContextoDeObjs = new DM_CROSLAND_20130417Entities();

        public List<TH_VENTA_EXTERNA_STOCK_MODELO_LISTAR> Listar(int ANIO, int MES, string ID_USUARIO)
        {
            var p = new object[] { new SqlParameter("@ANIO", ANIO), new SqlParameter("@MES", MES), new SqlParameter("@ID_USUARIO", ID_USUARIO) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<TH_VENTA_EXTERNA_STOCK_MODELO_LISTAR>("exec USP_VENTA_EXTERNA_STOCK_MODELO_LISTAR @ANIO,@MES,@ID_USUARIO", p).AsQueryable().ToList();
            return resultado;
        }

        public bool Insertar(int id, int id_modelo, int anio, int mes, int stock, string ID_USUARIO)
        {
            try
            {
                ContextoDeObjs.ExecuteStoreCommand("insert into TH_VENTA_EXTERNA_STOCK_MODELO(ID_VENTA_EXTERNA_STOCK_MODELO,ID_MODELO,ANIO,MES,STOCK,ID_USUARIO) values (" + id.ToString() + "," + id_modelo.ToString() + "," + anio + "," + mes + "," + stock + ",'" + ID_USUARIO + "')");
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

        public bool Eliminar(string ID_USUARIO, int ANIO, int MES)
        {
            try
            {
                ContextoDeObjs.ExecuteStoreCommand("DELETE TH_VENTA_EXTERNA_STOCK_MODELO WHERE ID_USUARIO ='" + ID_USUARIO + "' AND ANIO=" + ANIO + " AND MES=" + MES);
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

        public int UltimoID()
        {
            int max = 0;

            try
            {
                max = ContextoDeObjs.TH_VENTA_EXTERNA_STOCK_MODELO.Select(x => x.ID_VENTA_EXTERNA_STOCK_MODELO).Max();
            }
            catch (Exception)
            {
                return max;
            }

            return max;

        }

        public List<TD_MODELO_COMBO> ListarModelosPorMarca(int ID_MARCA)
        {
            var p = new object[] { new SqlParameter("@ID_MARCA", ID_MARCA) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<TD_MODELO_COMBO>("exec USP_TD_MODELO_LISTAR @ID_MARCA", p).AsQueryable().ToList();
            return resultado;
        }

        public List<MesEntero> ListaMeses(string ID_USUARIO, int ANIO)
        {
            var p = new object[] { new SqlParameter("@ID_USUARIO", ID_USUARIO), new SqlParameter("@ANIO", ANIO) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<MesEntero>("exec USP_TH_VENTA_EXTERNA_STOCK_MODELO @ID_USUARIO,@ANIO", p).AsQueryable().ToList();
            return resultado;
        }
    }
}
